/*
	此文件主要是用来维护数据字典 直接引入就行 然后在对于的文件加入mixins:[mixins] 自己页面调用自己需要的数据字典方法
*/
import { getDicts } from "@/api/system/dict/data";
export const mixins = {
	data() {
		return {
			sysUserStatus: [], /**用户状态 */
			sysCommonStatus: [],/**通用状态 */
			sysShowHide: [], /** */
			sysNormalDisable: [], /**字典类型状态 */
			sysUserSex: [], /**用户性别 */
			sysNoticeType: [], /**公告类型 */
			sysNoticeStatus: [], /**公告状态 */
			sysYesNo: [], /**系统内置 */
			sysJobGroup: [], /**任务组名 */
			sysJobStatus: [], /**任务状态 */
		}
	},
	methods: {
		/**
		 * 获取字典列表数据
		 * @param {*} params: 字典类型，  key： 自定义变量接收列表数据， callback：方法回执
		 * @returns 
		 */
		async getDictData(params, key, callback) {
			const res =  await getDicts(params);
			if (res && res.code == 200) {
				this[key] = res.data ? res.data : [];
				if (callback && typeof callback === 'function') {
					callback(this[key]);
				}
			}
		},
		
		getSysUserStatus(callback) { //用户状态
			this.getDictData('sys_user_status', 'sysUserStatus', callback);
		},
		getSysCommonStatus(callback) { //通用状态 0：启用  1：禁用
			this.getDictData('sys_common_status', 'sysCommonStatus', callback);
		},
		getSysShowHide(callback) {
			this.getDictData('sys_show_hide', 'sysShowHide', callback);
		},
		getSysNormalDisable(callback) {
			this.getDictData('sys_normal_disable', 'sysNormalDisable', callback);
		},
		getSysUserSex(callback) {
			this.getDictData('sys_user_sex', 'sysUserSex', callback);
		},
		getSysNoticeType(callback) {
			this.getDictData('sys_notice_type', 'sysNoticeType', callback);
		},
		getSysNoticeStatus(callback) {
			this.getDictData('sys_notice_status', 'sysNoticeStatus', callback);
		},
		getSysYesNo(callback) {
			this.getDictData('sys_yes_no', 'sysYesNo', callback);
		},
		getSysJobGroup(callback) {
			this.getDictData('sys_job_group', 'sysJobGroup', callback);
		},
		getSysJobStatus(callback) {
			this.getDictData('sys_job_status', 'sysJobStatus', callback);
		},
	
		// 回显数据字典
		selectDictLabel(datas, value) {
			if (value === undefined) {
				return "";
			}
			var actions = [];
			Object.keys(datas).some((key) => {
				if (datas[key].dictValue == ('' + value)) {
					actions.push(datas[key].dictLabel);
					return true;
				}
			})
			if (actions.length === 0) {
				actions.push(value);
			}
			return actions.join('');
		}
	}
}
